#ifndef HEAPSORT_H
#define HEAPSORT_H

void max_heapify(int *a,int i,int s);
void build_max_heap(int *a,int s);
void heapsort(int *a,int s);
int heap_extract_max(int *a,int s);
void heap_increace_key(int *a,int i,int key);
int * max_heap_insert(int *a,int s);
int heap_maximum(int *a);
inline int parent(int i) {return (i-1)/2;}
inline int left(int i) {return 2*i+1;}
inline int right(int i) {return 2*i+2;}
void print_array(int *a,int s);
#endif